package com.market.controller;

import cn.dev33.satoken.annotation.SaCheckLogin;
import com.market.entity.ChatMessage;
import com.market.service.ChatMessageService;
import com.market.model.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 聊天消息控制器
 * 处理聊天消息相关的功能，包括获取消息列表和更新消息已读状态
 * 所有接口需要用户登录才能访问
 */
@RestController
@RequestMapping("/chat/message")
@SaCheckLogin
public class ChatMessageController {
  @Autowired
  private ChatMessageService chatMessageService;
  
  /**
   * 获取指定聊天会话的消息列表
   * @param chatListId 聊天会话ID
   * @return 返回消息列表
   */
  @GetMapping
  public R<List<ChatMessage>> getChatMessageList(String chatListId) {
    List<ChatMessage> list =  chatMessageService.getChatMessageList(chatListId);
    return R.ok(list);
  }
  
  /**
   * 将指定聊天会话中的所有消息标记为已读
   * @param chatListId 聊天会话ID
   * @return 操作结果
   */
  @PutMapping("/{chatListId}")
  public R updateChatMessageIsRead(@PathVariable("chatListId") String chatListId){
    chatMessageService.updateChatMessageIsRead(chatListId);
    return R.ok();
  }
}
